package com.blog.admin.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.blog.common.core.web.page.TableDataInfo;
import com.blog.common.domain.entity.Category;
import com.blog.common.domain.dto.CategoryDto;
import com.blog.common.domain.dto.ConditionDto;
import com.blog.common.domain.vo.CategoryVo;

import java.io.Serializable;
import java.util.List;

/**
 * <p>
 * 分类 服务类
 * </p>
 *
 * @author Valerie
 * @since 2023-03-11
 */
public interface CategoryService extends IService<Category> {

    /**
     * 根据条件搜索分类
     * @param condition 条件
     * @return List<CategoryDto>
     */
    List<CategoryVo> listCategoriesBySearch(ConditionDto condition);

    /**
     * 查询分类()
     *
     * @param condition 条件
     * @return {@link TableDataInfo<CategoryVo>}
     */
    TableDataInfo<CategoryVo> listCategories(ConditionDto condition);


    /**
     * 删除分类
     *
     * @param categoryIds 分类id
     * @return Boolean
     */
    Boolean deleteCategories(Serializable categoryIds);

    /**
     * 新增分类
     *
     * @param categoryDto 分类dto
     * @return {@link CategoryVo}
     */
    CategoryVo saveCategories(CategoryDto categoryDto);

    /**
     * 根据id查询分类
     *
     * @param categoryId 分类id
     * @return {@link CategoryVo}
     */
    CategoryVo getCategoriesById(Serializable categoryId);

    /**
     * 修改分类
     *
     * @param categoryDto 分类
     * @return {@link Boolean}
     */
    CategoryVo updateCategories(CategoryDto categoryDto);
}
